package com.zjsru.plan2024.normal;

import java.util.Arrays;

/**
 * 2923. 找到冠军 I
 * @Author: cookLee
 * @Date: 2024-04-14
 */
public class FindChampion {

    /**
     * 主
     * \
     * 给你一个下标从 0 开始、大小为 n * n 的二维布尔矩阵 grid 。对于满足 0 <= i, j <= n - 1 且 i != j 的所有 i, j ：如果 grid[i][j] == 1，那么 i 队比 j 队 强 ；否则，j 队比 i 队 强 。
     * \
     * 输入：grid = [[0,1],[0,0]]
     * 输出：0
     * 解释：比赛中有两支队伍。
     * grid[0][1] == 1 表示 0 队比 1 队强。所以 0 队是冠军。
     * \
     * 输入：grid = [[0,0,1],[1,0,1],[0,0,0]]
     * 输出：1
     * 解释：比赛中有三支队伍。
     * grid[1][0] == 1 表示 1 队比 0 队强。
     * grid[1][2] == 1 表示 1 队比 2 队强。
     * 所以 1 队是冠军。
     * \
     * @param args args
     */
    public static void main(String[] args) {
        FindChampion findChampion = new FindChampion();
        int[][] grid = new int[][]{{0,1},{0,0}};
        System.out.println(findChampion.findChampion(grid));
    }

    /**
     * 寻找冠军
     *
     * @param grid 网格
     * @return int
     */
    public int findChampion(int[][] grid) {
        int len = grid.length;
        for (int i = 0; i < len; i++) {
            int[] one = grid[i];
            //如果i队是冠军那么满足改行总和是总长度-1，因为自己和自己比是0
            int sum = Arrays.stream(one).sum();
            if (sum == one.length - 1) {
                return i;
            }
        }
        return -1;
    }
}
